package pe.com.cotelasa.scp.dominio.modelo;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import pe.com.cotelasa.scp.dominio.excepcion.ModelExcepcion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioBanco;
import pe.com.cotelasa.scp.dominio.service.IServicioCuentaBancaria;
import pe.com.cotelasa.scp.dominio.service.IServicioEmpresa;
import pe.com.cotelasa.scp.dominio.service.IServicioParametro;
import pe.com.cotelasa.scp.dominio.service.IServicioTipoMoneda;
import pe.com.cotelasa.scp.entidad.CuentaBancaria;
import pe.com.cotelasa.seguridad.dominio.servicio.IServicioEnviarCorreo;

@Component("CuentaBancariaModel")
public class CuentaBancariaModelImpl implements CuentaBancariaModel {

    @Autowired
    private IServicioBanco servicioBanco;
    @Autowired
    private IServicioCuentaBancaria servicioCuentaBancaria;
    @Autowired
    private IServicioTipoMoneda servicioTipoMoneda;
    @Autowired
    private IServicioParametro servicioParametro;
    @Autowired
    private IServicioEmpresa servicioEmpresa;
    @Autowired
    private IServicioEnviarCorreo servicioCorreo;

    @Override
    public List<CuentaBancaria> obtenerListaCuentaBancaria(
            CuentaBancaria beanCuentaBancaria) throws ModelExcepcion {
        try {
            return new ArrayList<CuentaBancaria>(this.servicioCuentaBancaria.listarCuentaBancariasPorFiltro(beanCuentaBancaria));
        } catch (ServiceException e) {
            System.out.println("ERRRRORRRRR MODEL");
            throw new ModelExcepcion(e);
        }
    }

    @Override
    public void enviarCorreoError(Throwable e, String mensajeError) {
        try {
            servicioCorreo.enviarCorreoError(mensajeError, e);
        } catch (ServiceException e1) {
        }
    }
}
